Allow using distance measure in the geo context precision#29273
Allow using distance measure in the geo context precision#29273imotov merged 5 commits intoelastic:masterfrom
Conversation
Adds support for distance measure, such as "4km", "5m" in the precision field of the geo location context in context suggesters. Fixes elastic#24807
|
Pinging @elastic/es-search-aggs |
| parser.nextToken(); // { | ||
| parser.nextToken(); // field name | ||
| parser.nextToken(); // field value | ||
| return GeoUtils.parsePrecision(parser); |
There was a problem hiding this comment.
Just for completeness, can we check that the current token pointer after parsing is as expected, e.g. by consuming the remaining tokens and asserting that they are closing elements or something like that?
| } | ||
| } | ||
|
|
||
| public static int checkPrecisionRange(int precision) { |
jpountz
left a comment
There was a problem hiding this comment.
I know you mostly moved some code around but I left some suggestions for improvements. Looks good to me regardless.
| } | ||
|
|
||
| /** | ||
| * Parse a precision that can be expressed as an integer or a distance measure like "1km", "10m". |
There was a problem hiding this comment.
Maybe mention that this "precision" is the geohash length?
| String precision = parser.text(); | ||
| try { | ||
| // we want to treat simple integer strings as precision levels, not distances | ||
| return XContentMapValues.nodeIntegerValue(Integer.parseInt(precision)); |
There was a problem hiding this comment.
you should call either parseInt or nodeIntegerValue, not both?
| } catch (IllegalArgumentException e3) { | ||
| // this happens when distance too small, so precision > 12. We'd like to see the original string | ||
| throw new IllegalArgumentException("precision too high [" + precision + "]", e3); | ||
| } |
There was a problem hiding this comment.
should we catch separately the call to checkPrecisionRange and geoHashLevelsForPrecision?
…ecision-parsing-in-suggestions
Adds support for distance measure, such as "4km", "5m" in the precision field of the geo location context in context suggesters. Fixes #24807
* es/master: (68 commits) Allow using distance measure in the geo context precision (#29273) Disable failing query in QueryBuilderBWCIT. Fixed quote_field_suffix in query_string (#29332) Use fixture to test repository-url module (#29355) Remove undocumented action.master.force_local setting (#29351) Enhance error for out of bounds byte size settings (#29338) Fix QueryAnalyzerTests. Fix HasChildQueryBuilderTests to not use the `classic` similarity. [Docs] Correct javadoc of GetIndexRequest (#29364) Make TransportRankEvalAction members final Add awaits fix for a query analyzer test Check presence of multi-types before validating new mapping (#29316) Add awaits fix for HasChildQueryBuilderTests Remove silent batch mode from install plugin (#29359) Align cat thread pool info to thread pool config (#29195) Track Lucene operations in engine explicitly (#29357) Build: Fix Java9 MR build (#29312) Reindex: Fix error in delete-by-query rest spec (#29318) Improve similarity integration. (#29187) Fix some query extraction bugs. (#29283) ...
* es/6.x: (68 commits) Add note to migration docs on silent batch mode (#29365) Allow using distance measure in the geo context precision (#29273) Disable failing query in QueryBuilderBWCIT. Improve similarity integration. (#29187) Fix some query extraction bugs. (#29283) Fixed quote_field_suffix in query_string (#29332) TEST: Update negative byte size setting error msg Fix bwc in GeoDistanceQuery serialization (#29325) Move testMappingConflictRootCause to different class Enhance error for out of bounds byte size settings (#29338) [Docs] Correct javadoc of GetIndexRequest (#29364) Check presence of multi-types before validating new mapping (#29316) Make TransportRankEvalAction members final Pass through script params in scripted metric agg (#29154) Remove silent batch mode from install plugin (#29359) Track Lucene operations in engine explicitly (#29357) Build: Fix Java9 MR build (#29312) Reindex: Fix error in delete-by-query rest spec (#29318) Move Nullable into core (#29341) [Docs] Correct experimental note formatting ...
Adds support for distance measure, such as "4km", "5m" in the precision
field of the geo location context in context suggesters.
Fixes #24807